FIG. 1A shows a representation of a graphical user interface (GUI) 10 for an application program (iPhoto™) displayable on a computer screen for viewing a plurality of previews 14 of image files (shown as images 1a, 1b, etc.) in a catalog window 16. Such image previews 14 are sometimes referred to as “thumbnails,” and may be derived from compressed JPEG image files for example. Such image previews 14 can constitute logical groupings within the application (such as in an album 17), which may or may not correspond to a file system directory. In any event, by viewing the image previews 14, the user can choose an image preview of interest—for example, by “clicking” on it with a mouse pointer 18—which may then display its corresponding master image fully on the screen, allow the user to edit that image, etc. The displayed GUI 10 is similar to that found in the iPhoto™ software product available from Apple Computer, Inc. of Cupertino Calif., which is incorporated herein by reference.
The image previews 14 constitute graphically smaller versions of the master image files that they represent. For example, suppose a master image, such as one loaded into the computer from a digital camera, comprises a compressed JPEG image. Such master images typically comprise a large number of pixels compared to the image previews 14. For example, the master image may comprise a picture with over 1 million pixels (even when compressed), while the image previews 14 may constitute a smaller representation (e.g., 240 by 180 pixels) of the master image to which it corresponds. Such image previews 14 can be generated when a master image is loaded into the computer (e.g., using iPhoto) and/or when it is incorporated into the album 17, a file directory, or other logical grouping, which may occur using file management tool or by simply dragging images of interest in the catalog window 16. Once generated, the image previews 14 are stored as associated with their corresponding master image, and the image previews are displayed within the catalog window 16 as shown.
FIG. 1A shows a couple of different ways in which the image previews 14 may be manipulated within the catalog window 16. First, and assuming that the image preview 14 are too numerous to display with the expanse of the catalog window 16, the catalog window 16 may be associated with a scroll bar 20 having a scroll bar button 21, which can be manipulated using the mouse pointer 18 to scroll up and down (or left to right) amongst the image previews 14 to display image previews of interest. Second, the magnification of the image previews can be manipulated through use of a zoom selector slide 22 controllable by a zoom selector button 23 which is again is moveable using the mouse pointer 18. When button 23 is at its left-most position, the image previews 14 are shown within the catalog window 16 in their smallest format. When slid to the right, and as shown in FIG. 1B, the image previews 14 are magnified, and consequently a smaller number of image previews 14 are displayed within the catalog window 16. FIG. 1A shows the relative numbers of image previews that are displayed in the catalog window 16 when button 23 is moved to position 23a (16a; sixteen image previews) and position 23b (16b; four image previews). Of course, these numbers are merely exemplary and can constitute hundreds of image previews in an actual implementation.
Regardless of how the image previews 14 are being manipulated, ultimately such manipulation requires processing of the data that comprises the image preview, which as mentioned earlier can constitute a data set of the size of 240 by 180 pixels. This data set size for the image previews 14 is relatively large to provide suitable functionality within the program provided by GUI 10. For example, suppose the user slides button 23 to its right-most extent (not shown) to display the image previews 14 (or perhaps even a single image preview 14) at a high magnification. Were the data set size of the image previews 14 too small (or, said another way, at too low of a resolution), the image preview 14 would look unnatural or pixelated when magnified.
However, having such relatively large data sets for the image previews 14 also causes performance problems. For example, suppose the user wishes to scroll downward (using scroll bar 20) to view image previews 14 towards the bottom and presently unviewable within the catalog window 16. The image previews 14 should proceed seamlessly upwards within the catalog window 16 during scrolling. But to do this, the computer must process the relatively large amounts of data that comprise the various image previews 14 appearing within the catalog window 16. This problem is exacerbated as more image previews 14 are included within the catalog window 16, as would be the case when the image previews are displayed at low magnification. As a result, scrolling can appear disjointed and unsmooth to the user as the computer struggles to keep track all of the data sets of the affected image previews 14. For example, the rows of image previews 14 coming into view can appear to flicker, and/or scrolling can appear to the user to pause or “hang.”
This same computation problem can also occur to a lesser extent when the zoom selector slide 22 is used to magnify or demagnify the displayed image previews. In this situation too, the relatively large sizes for the data sets for the image previews 14 can make zooming the image previews difficult. As well as having to handle relatively large amounts of data, adjustments must be made to the data sets for the image previews 14 on the fly as their zoom level is changed. Thus, pixels in the data sets may need to be interpolated to make smaller representations of the image previews 14, or data pixels may need to be interpolated to fill in portions of the image previews to allow them to be displayed in a larger size. This can be computationally intensive just as is scrolling.
Accordingly, the art would be benefited by a solution to these problems, and solutions are provided herein.